#ifndef __BLACK_SYSTEM_H__
#define __BLACK_SYSTEM_H__

#include "maths/default.h"

namespace black
{
	class systemManager
	{
		enum CPUFeature
		{
			eNONE	= 0,
			eSSE	= ( 1 << 0 ),
			eSSE2	= ( 1 << 1 ),
			eSSE3	= ( 1 << 2 ),
			e3DNOW	= ( 1 << 3 )
		};
		systemManager();

		bFORCEINLINE bool	isCPUFeatureEnabled		( CPUFeature eFeature ) const;
		bool				isCPUIDAvailable		() const;

	protected:
		void				initCPUFeatures			();
		
		CPUFeature eCPUFeatures;
	};
}

#include "maths/inl/system.inl"

#endif // __BLACK_SYSTEM_H__
//---------------------------------------------------------------------------------------
// Copyright (c) 2009 Jounayd Id Salah.
// All rights reserved.
//---------------------------------------------------------------------------------------
